package com.macro.mall.dao;

import com.macro.mall.dto.OmsOrderDeliveryParam;
import com.macro.mall.dto.OmsOrderDetail;
import com.macro.mall.dto.OmsOrderQueryParam;
import com.macro.model.OmsOrder;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 订单自定义查询Dao
 */
public interface OmsOrderDao {

    /**
     *  条件查询订单
     * @param queryParam  前端传来的订单信息
     * @return
     */
    List<OmsOrder> getList(@Param("queryParam") OmsOrderQueryParam queryParam);


    /**
     *  批量发货
     * @param deliveryParamList  前端传来的物流信息
     * @return
     *
     * @Param 动态sql必须给传的参数加 @Param
     *
     *  通过 case when then 语句批量更新订单表
     */
    int delivery(@Param("list") List<OmsOrderDeliveryParam> deliveryParamList);


    /**
     * 获取订单详情
     *
     *  oms_order, 订单表
     *  oms_order_item, 订单中包含的商品信息
     *  oms_order_operate_history  当订单状态发生改变时，用于记录订单的操作信息。
     *  三张表联合拼出来整个订单的信息
     */
    OmsOrderDetail getDetail(@Param("id") Long id);
}
